Remote Control Device Programming and Indication of Programming Mode Status

ABSTRACT

A method and apparatus for assisting a user in programming a universal remote control. More specifically, a method and apparatus for helping the user reestablish system configurations, providing feedback, instructing the user, and supplying system information.

RELATED APPLICATIONS

This application is a divisional application of U.S. patent applicationSer. No. 11/118,461, entitled “METHOD AND APPARATUS FOR A SIMPLIFIEDPOWER SCAN FOR REMOTE CONTROL”, filed Apr. 29, 2005, which claimspriority to U.S. Provisional Application Ser. No. 60/567,029, entitled“METHOD AND APPARATUS FOR A SIMPLIFIED POWER SCAN FOR REMOTE CONTROL”,filed Apr. 29, 2004. Each of these applications is hereby incorporatedherein by reference in its entirety.

FIELD OF THE INVENTION

This invention pertains to universal remote controls and, moreparticularly, the processes of programming universal remote controls.

BACKGROUND OF THE INVENTION

Various devices exist that can be used to receive and record televisionprograms. Most common are VCRs, which can record television programs.More recently, devices known as personal video recorders (PVRs) ordigital video recorders (DVRs) have entered the market. PVRs use a harddrive to record digital data that represents a television program.Various optical media and other forms of memory can be used to recordtelevision programs or digital representations thereof.

Most recent television receiving devices and recording devices, such aspersonal video recorders (PVRs), and cable and satellite set-top-boxes,as well as other home electronics, now include universal remotecontrols. These remote controls allow a user to control the function ofthe television receiving device and peripheral devices from a distancevia a wireless connection. Universal remote controls are typicallycapable of operating other electronic devices including televisions,VCRs, or DVD players. To operate these other devices, the universalremote control must be programmed by the user.

One method for programming remote controls is known as a power scan. Inthis scenario, the user continually presses the power button on theremote control for a certain device. At each press of the power button,the remote control selects a different control code from its memory.Once the device turns off, the user signals to the remote control thatthe current code is operable. For instance, a user will turn on atelevision he or she desires to have the remote control operate. Theuser would put the remote into a programming mode. Then, the user wouldpress the power key until the television turns off. Once the televisionis turned off, the user can press another key on the remote control todirect the remote control to set that television's code.

Programming a remote control can prove frustrating to the ordinary user.In programming the remote control, the television or other electronicdevices tend to do some strange things. For instance, during programmingthe remote control will turn off the television. The user is often leftwithout any idea how to turn the television back on. Many remotecontrols provide little or no feedback to the user about the programmingor the feedback provided would be unintelligible. Sometimes users manageto program the remote control despite these problems. Yet, the remotecontrol still fails to show the user the codes it needs. Thus, the usermust go through the programming process again if the remote controlneeds it in the future.

There is a need in the community to provide remote controls that areeasier to program. Should the remote control not get easier to program,there is still a need to provide a simpler method for programming theremote controls. These and other deficiencies of the prior art areovercome by the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high level block diagram of a system using a televisionreceiving device and a universal remote control of an embodiment of thepresent invention.

FIG. 2 is a high level block diagram of a television receiving device ofan embodiment of the present invention.

FIG. 3 is a flow diagram illustrating a method for assisting a user inturning a television back on and displaying the device codes duringprogramming of a universal remote control.

FIG. 4 is a flow diagram illustrating a method for providing programmingfeedback to a user by the flashing of LEDs on the remote control.

FIG. 5 is a flow diagram illustrating a method for providing the user aninteractive instructional program to follow during programming.

DETAILED DESCRIPTION OF THE INVENTION

In this specification, the present invention will be described usingmethods and systems related to subscriber satellite television service.This specific description is not meant to limit the invention to thatone embodiment. The present invention may also be applicable to cabletelevision systems, broadcast television systems or other televisionsystems. The present invention is also described in terms of digitalvideo recording (DVR) devices. The present invention may also beapplicable to digital-versatile-disc (DVD) recording devices or othertelevision recording devices. One skilled in the art will recognize thatthe present invention can apply elsewhere. While the invention has beenparticularly shown and described with reference to preferred embodimentsthereof, it will be understood by those skilled in the art that variousother changes in the form and details may be made therein withoutdeparting from the spirit and scope of the invention.

As a general matter, the disclosure uses the term “signal.” One skilledin the art will recognize that the signal may be any digital or analogsignal. Those signals may include, but are not limited to, a bit, aspecified set of bits, an A/C signal, or a D/C signal. Uses of the term“signal” in the description may include any of these differentinterpretations. It will also be understood to one skilled in the artthat the term “connected” is not limited to a physical connection butcan refer to any means of communicatively or operatively coupling twodevices.

As another general matter, the disclosure uses the terms “televisionconverter,” “receiver,” “set-top-box,” “television receiving device,”“television receiver,” “television recording device,” “satelliteset-top-box,” “satellite receiver,” “cable set-top-box,” “cablereceiver,” and “television tuner” to refer interchangeably to aconverter device or electronic equipment that has the capacity toacquire, process and distribute one or more television signalstransmitted by broadcast, cable, telephone or satellite distributors.“Digital video recorder (DVR)” and “personal video recorder (PVR)” referinterchangeably to devices that can digitally record and play backtelevision signals and that may implement trick functions including, butnot limited to, fast-forward, rewind and pause. As set forth in thisspecification and the figures pertaining thereto, DVR and PVRfunctionality or devices may be combined with a television converter.The signals transmitted by these broadcast, cable, telephone orsatellite distributors may include, individually or in any combination,internet, radio, television or telephonic data or information. Oneskilled in the art will recognize that a television converter device maybe implemented as an external self-enclosed unit, a plurality ofexternal self-enclosed units or as an internal unit housed within atelevision. One skilled in the art will recognize that the presentinvention can apply to analog and digital satellite set-top-boxes.

As yet another general matter, it will be understood by one skilled inthe art that the term “television” refers to a television set or videodisplay that may contain an integrated television converter device(e.g., an internal cable-ready television tuner housed inside atelevision) or, alternatively, that is connected to an externaltelevision converter device (e.g., an external set-top-box connected viacabling to a television). A further example of an external televisionconverter device is the EchoStar Dish PVR 721, Part Number 106525,combination satellite set-top-box and DVR.

Finally, as a general matter, it should be understood that satellitetelevision signals may be very different from broadcast television orother types of signals. Satellite signals may include multiplexed,packetized, and modulated digital signals. Once multiplexed, packetizedand modulated, one analog satellite transmission may carry digital datarepresenting several television stations or service providers. Someexamples of service providers include HBO™, CSPAN™, ABC™, CBS™, orESPN™. In satellite television, a service provider can also be comparedto a “channel.”

The term “channel,” as used in this description, carries a differentmeaning from its normal connotation. In broadcast television, differentanalog signals of a television station may be carried on a carrierfrequency and its sub-channels. A tuner in a television may then acquireand process these signals. In broadcast television, the term channel hasthus become synonymous with the sub-channel or the station on thatsub-channel. The normal connotation of the term “channel” is thereforenot always appropriate to describe satellite television transmissionswhere multiple stations may be multiplexed onto a single carrierfrequency. Satellite television distributors, however, may organize thesatellite data into a group of different “virtual channels.” Thesevirtual channels give the impression that the satellite televisionprograms (the service providers) are placed in channels. This impressionmay assist user operation of the satellite set-top-box since it modelsan analog television or analog receiving device. The virtual channelsmay appear in the electronic program guide (EPG) data and the user maychoose programming by selecting a virtual channel. For instance, theuser can select HBO, which may be on virtual channel 300, or CSPAN,which may be on virtual channel 210. These service providers or virtualchannels are not necessarily carried in the same signal being sent fromthe same satellite. EPG data may come from a service provider (e.g.,HBO), content provider (e.g., Disney), a third party (e.g., TV Guide) orfrom another outside entity. Thus, in satellite television service achannel may not be the same as in broadcast television service. Rather,channels may be more properly termed service providers in satellitetelevision service. The term “channel” will be used in this descriptionto describe the service providers and the virtual channels they mayoccupy.

FIG. 1 presents an embodiment of a home entertainment system 102 thatincludes a television converter device 100 in the form of a satelliteset-top-box. Generally, the satellite set-top-box 100 may receive one ormore television signals from a cable television distributor, from abroadcast television distributor or from a satellite televisiondistributor 104. As a preferred embodiment, home entertainment system102 receives signals from satellite television distributor 104. Oneskilled in the art will recognize that set-top-box 100 may also receivevideo-digital subscriber line (DSL), DSL, Internet, wireless and othersignals from content or video distributors. The satellite set-top-box100 may process television signals and may send the processed signals toperipheral electronic devices, such as a television 120 and remotecontrol 126. The satellite set-top-box 100 also may accept commands froma remote control 126 or other peripheral electronic devices. More detailabout the functionality of the satellite set-top-box 100 is providedbelow. One skilled in the art will recognize that many embodiments ofthe entertainment system 102 are possible and within the scope of thisinvention. Other such embodiments may include, but are not limited to,various combinations or permutations of devices and connections for thedelivery, storage, and display of communications, content and otherdata.

To further describe the home entertainment system, embodiments relatingto receiving satellite television signals will be explained in moredetail. A satellite television distributor 104 may transmit one or moresatellite television signals 128 to one or more satellites 106.Satellite television distributors may utilize several satellites 106 torelay the satellite television signals to a subscriber. Each satellite106 may have several transponders. Transponders transmit the signal 130from the satellite to the subscriber. For example, these signals 130 maybe transmitted at a frequency of 2150 MHz.

A transponder may also polarize the transmitted signal 130 in severalways. One form of polarization in satellite transmissions is circularpolarization. For example, transponders of satellite 106 may transmittwo signals (together as signal 130) on the same transponder, one signalthat is right-hand polarized and another signal that is left-handpolarized. In other words, two signals may be simultaneously transmittedwith opposite polarizations. The opposite polarizations may preventinterference. One skilled in the art will recognize that other ways ofpolarizing signals are possible.

The polarized signals can be received at satellite communication device108. The satellite communication device 108 may include one or more ofthe components that follow. One component of satellite communicationdevice 108 may be a satellite dish. A satellite dish can focus thesignal on one or more low-noise block filters (LNBF), also referred toas low-noise block down converters (LNBDC). The LNBFs may de-polarizeand initially process the signal. This initial processing may includefiltering noise from the signal and down-converting the signal.Down-conversion is sometimes required to transmit the signal 110 throughcertain cables, such as coaxial cables. The signal 110 arrives at thetelevision converter device 100 via cabling. One skilled in the art willrecognize that other methods and other systems of delivering thesatellite signal 110 to the satellite set-top-box 100 may be possible.

FIG. 2 provides a high level block diagram for the satellite televisionconverter device 100, 200 with DVR functionality in accordance with thepresent invention.

The signal 110, 204 that arrives at the satellite set top box 200 mayundergo extensive processing. The television converter 200 may includeone or more tuner devices 206 that may receive a satellite signal 204.In this embodiment, tuner device 206 acquires a satellite signal 204from satellite television distributor 104. Tuner device 206 mayinitially process the satellite signal 204. Tuner device 206 may alsoreceive subscriber commands in the form of signals from controlelectronics unit 202. Signals from control electronics unit 202 mayinclude, but are not limited to, signals to tune to a transponder aspart of the process of selecting a certain channel for viewing on aperipheral device. One skilled in the art would recognize that the tunerdevice 206 may include fewer, more, or different components.

After receiving the signal 204, one of the first steps may be todemodulate 208 the signal 204. The signal 204 may arrive as an analogsignal that “carries” data (e.g., data is modulated onto the analogsignal). Demodulation 208 may be accomplished by reversing themodulation process. Modulation can be done in several ways. Modulationmay include amplitude modulation (AM) or frequency modulation (FM). Ifthe carried data is digital, modulation methods include, but are notlimited to, biphase-shift keying (BPSK), quadraphase-shift keying(QPSK), or eight-phase shift keying (8PSK). One skilled in the art willrecognize that other methods of modulating and demodulating the signal204 may be possible. Another one of the first steps may also be to errorcheck 208 signal 204. One example of error checking 208 is forward errorchecking (FEC). FEC 208 may include, but is not limited to, inspectingone or more parity bits that may accompany signal 204. One skilled inthe art will recognize that many methods for error checking arepossible. For the purposes of discussion, an embodiment using digitaldata will be discussed below. However, one skilled in the art willrecognize that systems with analog data or combined analog and digitaldata are also possible and contemplated herein.

In this embodiment, satellite set-top-box 200 contains controlelectronics unit 202 that receives satellite signal 204. One skilled inthe art will recognize that control electronics 202 may receive othersignals, including, but not limited to, signals from a cable orbroadcast television distributor. One example of a control electronicsunit 202 is the STMicroelectronics STi5517 Low-Cost Interactive Set-topBox Decoder, Part No. 7424736A. In a preferred embodiment, controlelectronics unit 202 includes discrete electronic components combinedinto a single circuit with a shared bus 210. In other embodiments,control electronics unit 202 may be configured differently. For example,one or more of the control electronics unit 202 components inset-top-box 200 may be combined or omitted. The control electronics unit202 may use a custom ASIC, such as from the LSILogic G11 family, orFPGA, such as from the Altera Stratix™ family. As a further example, oneor more of the control electronics unit 202 components in set-top-box200 may not share a bus 210, but may nonetheless be operativelyconnected by some other means. One skilled in the art will recognizethat other configurations of set-top-box 200 and control electronicsunit 202 are possible and within the scope of this invention. Oneskilled in the art will further recognize that some components ofset-top-box 200 and control electronics unit 202 may be implemented inhardware or software. The control electronics unit 202 may operate underthe control of a software program, firmware program, or some otherprogram stored in memory or control logic. One skilled in the art willalso recognize that the control electronics unit 202 may include otherelectronic components or structures to mediate or process signals.

Control electronics unit 202 may contain one or morecentral-processing-units (CPUs) 212 or processors. A preferredembodiment of control electronics unit 202 contains a single CPU 212that is operatively connected to the shared bus. In one embodiment, CPU212 may be used, among other things, for logical operations forset-top-box 200 functions including, but not limited to, channelselection, recording control, EPG display and control, and systemmaintenance. Examples of commercially available CPUs 212 include theSTMicroelectronics Enhanced ST20 32-bit VL-RISC, Motorola 68000 or IntelPentium processors. One skilled in the art will recognize that the CPU212 may be integrated with memory or other discrete electronicscomponents.

Control electronics unit 202 may contain one or more volatile memorycomponents 214. Volatile memory components 214 may include, but are notlimited to, one or more SDRAM memory chips. Similarly, controlelectronics unit 202 may also contain one or more non-volatile memorycomponents 216. Non-volatile memory 216 may include one or more memorychips, including, but not limited to, ROM, SRAM, SDRAM and Flash ROM.One skilled in the art will recognize that volatile memory 214 andnon-volatile memory 216 may be integrated within other electronicscomponents. One skilled in the art will also recognize that other memorycomponents may be included within set-top-box 200 and controlelectronics unit 202. One skilled in the art will recognize that memory214, 216 may be used for many purposes, including, but not limited to,storing EPG data and storing data for use by CPU 212.

In a preferred embodiment, signal 204 is in digital form (e.g., adigital stream) after demodulation and error correction. For example,digital stream 204 may use, but is not limited to using, the digitalvideo broadcasting (DVB) transport standard. The digital stream 204 maybe multiplexed and therefore require demultiplexing by XPORT Engine 222.Demultiplexing 222, or demuxing, may include separating the bits of datainto separate digital data streams. The digital streams may bepacketized. Thus, the multiplexing of the separate digital data streamsmay not be bit-by-bit but packet-by-packet. The packet size may vary ormay be constant. After demuxing 222 the packets, the separate digitaldata streams may be reassembled by placing related packets together in acontinuous data stream 204.

Each of the separate digital data streams may also be encoded. Encodingis a method for representing data. Encoding may allow the data to becompressed. Compression can provide the system with increased bandwidth.One skilled in the art will recognize that several different encodingformats are possible. In satellite television, encoding formats mayinclude the MPEG, MPEG2 or MPEG4 standards. Beyond the raw data, theseparate digital data streams may include forward error correction,headers, checksums, or other information. All of this differentinformation may be included in the digital television signal 204processed by the satellite set-top-box 100. Control electronics unit 202may therefore include one or more video processing units 218 that, amongother video processing operations, may decode encoded signal 204. In apreferred embodiment, video processing unit 218 may include, but is notlimited to, a graphics processor, MPEG-2 decoder and a displaycompositor with separate on-screen display (OSD) control for peripheraldevices. One skilled in the art will recognize that video processingunit 218 may also include other electronics, including, but not limitedto, alpha blending, antialiasing, antiflutter and antiflicker filters,memory and video-rendering components.

Another discrete electronic component of control electronics unit 202may be a video encoder unit 220. Video encoder unit 220 may work incombination with or independently from video processing unit 218. Videoencoding unit 220 may encode digital stream 204 for output to one ormore peripheral devices, including, but not limited to, a television.For example, video encoding unit 220 may encode digital stream 204 forRGB, CVBS, Y/C and YUV outputs. Encoding may allow program data to becompressed. As a preferred embodiment, video encoder 220 may translate adigital stream into a signal using the NTSC, PAL or SECAM standards. Oneskilled in the art will recognize that video encoder unit 220 mayinclude other functionality, may be integrated into other electroniccomponents of satellite set-top-box 200, and may encode digital stream204 using other standards, including, but not limited to, MPEG andMPEG2.

Control electronics unit 202 may also include one or more hard driveinterfaces 226 and hard drives 232. In a preferred embodiment,television converter device 200 contains one hard drive interface 226and hard drive 232. Hard drive 232 may be used for many purposes,including, but not limited to, storing recorded programs, bufferingcurrently-playing programs (e.g., buffering a program may allow a userto pause or rewind a progran1), storing EPG data, storing commands orfunctions for the control electronics unit 202, storing timers or recordevents, and storing data for other devices within or connected to thesatellite set-top-box 200. As another example, hard drive 232 may beused to temporarily store data for processing by CPU 212. In thisexample, the hard drive 232 may allow the processor 212 to separate EPGdata arriving as part of digital stream 208. One skilled in the art willrecognize that other storage devices and interfaces may be substitutedfor hard drive interface 226 and hard drive 232 and are within the scopeof this invention. One skilled in the art will also recognize that harddrive interface 226 and hard drive 232 may separately or togetherinclude an integrated memory (e.g., a memory buffer, commonly known orreferred to as cache) and additional processing components or logic. Oneskilled in the art will also recognize that hard drive interface 226 maybe integrated into peripheral interface 224 (described below). Finally,one skilled in the art will recognize that hard drive 232 may beexternal and connected to satellite set-top-box 200. For example, anexternal hard drive 232 may be connected to satellite set-top-box 200using USB 2.0 or IEEE 1394 (FireWire) connections. Such an external harddrive may include a screen for portable viewing of programming stored onit.

An audio processing unit 228 may also be part of the control electronicsunit 202. Audio processing unit 228 may decode the digital stream 204for output to peripheral devices, including, but not limited to, astereo, television speakers or portable audio or video players. Forexample, audio processing unit 228 may decode MPEG-1 layers I/II andlayer III, Dolby Digital, Dolby ProLogic, SRS/TruSurround encoded audioin digital stream 204. Audio processing unit 228 may include one or moreprocessors, memory components or digital-to-audio converter (DAC)systems. One skilled in the art will recognize that other audioprocessing components and functionality may be accomplished using audioprocessing unit 228.

A satellite set-top-box 200 may be connected to one or more peripheralelectronic devices through peripheral interface 224. These peripheraldevices may include a stereo, television 230, smart card 236, VCR, orother devices. In a preferred embodiment, home entertainment system 102minimally contains, but is not limited to, a television 230 and smartcard 236. Television 230 may serve many purposes, including, but notlimited to, displaying television programming, displaying the EPG,displaying timer conflicts, and displaying other types of data, graphicsand programming. Peripheral devices may receive and/or send signals fromthe satellite set-top-box 200. For instance, the television 230 mayreceive video and audio signals and a stereo may receive only audiosignals. A camcorder, on the other hand, may send video or audio signalsto the satellite set-top-box 100 or receive audio and video signals fromthe set-top-box 100 to record. As another example, peripheral interface224 may include a processor or other electronic components to permit aninterface to content security devices such as an external “smart card.”In this example, peripheral interface 224 may then encrypt or decryptcontent for output to other peripheral devices. Thus, peripheralinterface 224 may perform one or more functions for multiple peripheraldevices, including, but not limited to, the synchronous or asynchronoustransfer of data between different peripheral devices (e.g., decryptingcontent using a smart card peripheral device and outputting decryptedcontent to a television at the same time). One skilled in the art willrecognize that the peripheral devices may include many types ofcommercially available electronic devices.

The home entertainment system 102 may also include a remote control 126,234 peripheral device, also sometimes referred to as a remote. Theremote control 234 may be used to send commands to the satelliteset-top-box 200. The remote control 234 may send commands via a wirelessconnection using, for example, infrared or UHF transmitters within theremote control 234. One example of an embodiment of a remote controller234 is the EchoStar Technologies Corporation 721 Platinum Plus Remote,Part Number 121150, that includes an IR transmitter and an ultra highfrequency (UHF) transmitter. The remote control 234 may be able to sendsignals to other peripheral electronic devices that form part of thehome entertainment system 102, including, but not limited to, atelevision, stereo, VCR, or DVD player. The set-top-box 200 may also beable to send signals to the remote control 234, including, but notlimited to, signals to configure the remote control 234 to operate otherperipheral devices in home entertainment system 102. In someembodiments, the remote control 234 has a set of Light Emitting Diodes(LEDs). Some remote controls may include Liquid Crystal Displays (LCDs)or other screens. The remote control may include buttons, dials, orother man-machine interfaces. While the remote control 234 may often bethe common means for a subscriber to communicate with the satelliteset-top-box 200, one skilled in the art will recognize that other meansof communicating with the set-top-box 200 are available, including, butnot limited to, attached keyboards, front panel buttons or touchscreens.

The satellite set-top-box 200 may also include a remote controlinterface. A remote control interface may include any means for the userto communicate to the satellite set-top-box 200, and may be implementedusing the peripheral interface 224 of control electronics unit 202 or byconnecting a peripheral remote control interface device. In a preferredembodiment, a remote control interface may receive commands from one ormore remote controls 234. Remote control 234 may use infrared, UHF, orother communications technology. The remote control interface maytherefore translate an input from the user into a format understandableby the control electronics unit 202. The translation systems mayinclude, but are not limited to, electronic receivers and electronicrelays. One skilled in the art will recognize that other means toreceive and translate user inputs are possible.

Another peripheral device and connection to the satellite set-top-box200 may include a phone line and modem. Set-top-box 200 may use a modemand phone line to communicate with one or more outside entities orsystems (e.g., satellite television distributor 104). The phone line maycarry local or long-distance telephone service. One skilled in the artwill recognize that the phone line may also carry other services,including, but not limited to, DSL service. These communications mayinclude requesting pay-per-view programming, reporting of purchases (forexample, pay-per-view purchases), obtaining updates to subscriberprogramming (e.g., updating EPG data), or receiving updates to softwareon the satellite set-top-box 100. For example, the phone line maycommunicate with the satellite set-top-box 100 using an RJ-11 styletelephone connection. One skilled in the art will recognize that thereare many other uses for this phone line connection. For example, EPGdata may be transmitted to set-top-box 200 via phone line or in thesatellite signal 204. One skilled in the art will recognize that the EPGdata may be transmitted to set-top-box 200 by various other methods,systems and outside entities. Also, one skilled in the art willrecognize that a phone line connection to satellite distributor 104 mayrepresent other communication connections, including, but not limitedto, wireless, Internet, or microwave communications connections. Anotherfunction of the phone line may be to periodically receive the EPG data.One skilled in the art will also recognize that a phone line connectionmay permit networked communications with other network-ready devicesusing the telephone wiring within a subscriber's location.

A satellite set-top-box 200 may also include network connectivity. Forexample, peripheral interface 224 may include components or interfacesthat permit the connection of RJ-45 cabling and transmission of TCP/IPtraffic to other connected devices. As another example, a wirelessrouter may be attached via peripheral interface 224 to allow wirelesslocal-area-network (WLAN) data communications using a standard wirelessnetworking protocol such as WiMAX, 802.11b or 802.11g. One skilled inthe art will recognize that various other network connections to theset-top-box 200 are possible.

The present invention relates to programming remote controls to controla device, such as a component in a home entertainment system, where, forexample, the device control codes may not be known to a user. In theembodiments discussed below, it is assumed that the remote controls havepreviously stored thereon, or otherwise have access to, one or more setsof control codes that control various devices. The sets of control codesmay be grouped by type of device. For example, sets of control codes maybe grouped by televisions and other display devices, VCRs, andset-top-boxes. Methods to provide control codes to a remote control arewell known in the art and are outside of the scope of thisspecification.

Each remote control in this disclosure is also capable of selectivelycontrolling multiple devices. In one embodiment, the remote controlassociates a device control code with each device that can becontrolled. For example, if the remote control can control threedevices, the remote control may reserve and use three memory locationsfor the three device control codes. Multiple devices may be selected byany method, including, but not limited to, providing a device “mode” keyfor all devices or providing a device-specific key for each device. Oneskilled in the art will recognize that other methods of selectingmultiple devices are possible.

In FIG. 3, a method for programming a remote control in accordance withone embodiment of the present invention is described. The method 300starts with a receiving operation 302 wherein a first user input isreceived that indicates that the remote control is to be programmed tocontrol some device. Receiving operation 302 initiates a programmingmode that allows the user to determine a device control code for adevice. The first user input may be a user depressing a specific key onthe remote control for a predetermined period of time. One skilled inthe art will recognize that alternative first user inputs are possible.

In addition to initiating the programming mode, the first user input mayalso designate a specific type of device that the user wishes to programthe remote control to control. For example, in one embodiment multipledevice “mode” keys, such as a TV mode key, a Satellite mode key, a VCRmode key, and an AUX mode key, may be provided on the remote control'skeypad. In this embodiment, a first user input of pressing and holdingdown any of the mode keys for three seconds initiates the programmingmode and also identifies the type of device to be programmed (i.e. adisplay device, a satellite receiver, a VCR, or some other type ofdevice).

In addition to causing the remote control to enter the programming modeand initiating the timeout operation 304 (discussed below), receivingoperation 302 may perform several functions. Receiving operation 302 mayidentify the type of device the user wishes to control. Receivingoperation 302 may also designate a command to be sent to the device.Each designation may require one or more user inputs to be performed.

Identification of the type of device may be used to narrow the sets ofcontrol codes that must be searched to determine the correct controlcode for the device to be controlled. For example, a set of TV controlcodes may be used if the TV mode key is pressed to enter the programmingmode. This embodiment will be discussed in greater detail with referenceto the selection operation 312 (discussed below).

After entering the programming mode, a timeout operation 304 begins. Inthis embodiment, timeout operation 304 monitors the remote control foruser inputs. If no user input is received within a predetermined amountof time, then the programming mode “times out” and the programming modeexits with timeout exit operation 306. Timeout exit operation 306returns the remote controller to the mode it was in prior to thereceiving operation 302. In one embodiment, timeout exit operation 306does not change the device control code for the device identified in thereceiving operation 302. One skilled in the art will recognize that manyways of performing timeout operation 304 are possible.

If a user input is received within the predetermined time during timeoutoperation 304, a first determination operation 308 determines if theuser input is a specified second user input. For example, a specifickey, such as a power, up arrow or right arrow key, or combination of keypresses may be specified as the second user input. If the user input isnot the second user input, then a second determination 310 (discussedbelow) determines if the user input is a specific third user input.

If the first determination operation 308 determines that the user inputis the second user input, then a selection operation 312 selects acontrol code from a set of control codes and a transmission operation314 transmits the selected control code and a command code to thedevice. The set of control codes used by the selection operation 312 mayhave been determined as part of the receiving operation 302.Alternatively, the remote control may include only one set of controlcodes that includes all known control codes for a large set of devices,although this may not be preferred because of the time necessary toselect and transmit such a large set of control codes.

During a programming session, the selection operation 312 may select acode from the set of control codes in many ways. In one embodiment, acontrol code is always selected by the remote control and stored inmemory for that device type. Selection operation 312 then finds thiscontrol code in the set of control codes and selects the next controlcode in the set. The selected control code preferably is stored intemporary memory until the programming mode exits, at which time thecode in the temporary memory may replace the original code or may bediscarded depending on how the programming mode exits. This allows thecontrol codes in the set to be iteratively selected and transmitted inresponse to multiple second user inputs as shown in the loop describedby the timeout operation 304, the first determination operation 308, theselection operation 312 and the transmission operation 314. One skilledin the art will recognize that other ways of performing selectionoperation 312 are possible and within the scope of this invention.Alternative methods of iteratively selecting codes from a set are alsopossible and are broadly applicable here.

Embodiments of selection operation 312 may also include additionalfunctions. For example, in one embodiment, selection operation 312determines if all the control codes in the set or sets of control codeswere tested. If all the codes have been transmitted at least once, thenan indication is provided to prevent the user from endlessly giving thesecond user input. The indication may be a flashing of one or more lightemitting diodes (LEDs) on the remote control or some other visible oraudible indication.

If the first determination operation 308 determines that the user inputis not the second user input, then a second determination operation 310determines if the user input receiving in the timeout operation 304 is aspecified third user input. Whereas the second user input can beconsidered a command by the user to test the next control code in theset, the third user input can be considered a command from the user thatthe last control code sent worked in controlling the device.

If the second determination operation 310 determines that the user inputis the third user input, then an identify operation 316 identifies thecurrently selected control code (selected by the last selectionoperation 312 and transmitted by transmission operation 314) as thecommand code to the device. The identity operation 316 may includesetting a flag to the control code in the set or storing the selectedcontrol code to memory in a specific location as the device control codefor that type of device.

As a result of receiving the third user input, a second transmissionoperation 318 transmits the currently selected control code to thedevice along with a command that reverses the effects of the commandsent by the first transmission operation 314. For example, if thecommand sent in the first transmission operation 314 was a power off,the command sent by the second operation 318 is a power on command.After the identification operation 316 and second transmission operation318 are completed, the programming mode exits successfully in successexit operation 322.

If the user input received in timeout operation 304 is neither thesecond nor the third user input, then it is some other unspecified userinput. In this case, failure exit operation 320 exits the programmingmode in failure. Such an unspecified user input may be considered a usercancellation of the programming mode. In one embodiment, failure exitoperation 320 does not change the device control code stored in memoryfor the device. In an alternative embodiment, failure exit operation 320stores a predetermined default control code in memory.

Each of the various exit operations 306, 320, 322 in the method 300 mayalso provide an exit operation indicating the status of the programmingupon exit. The exit operation indication may be visible or audible. Forexample, the exit operation indication may include flashing one or moreLEDs on the remote controller in some predefined sequence. Each of theexit operations 306, 320, 322 may provide its own specific exitoperation indication, i.e., the timeout exit operation 306 providing atimeout indication (for example, a high frequency flashing of the LEDs),the failure exit operation 320 providing a failure indication (forexample, a continuous illumination of the LEDs), and the success exitoperation 322 providing a programming successful indication (forexample, a low frequency flashing of the LEDs). The exit operationindication may persist until receipt of a user input to verify that theuser saw the indication.

In addition to the exit operation indications (described above), theexit operation indication may display the device control code that wassuccessfully selected in the programming process by the user. The codemay be displayed to the user via an LCD 412 on remote control 400(discussed below). Alternatively, for remote controls specificallydesigned to operate in concert with a companion device in the homeentertainment system, the success exit operation 322 may includetransmitting a command to the companion device indicating exit of theprogramming mode by a success exit operation 322, providing the controlcode selected and causing the companion device to have the control codedisplayed on a television in the home entertainment system. The user maybe instructed to make a record of this control code for futurereference, such as in the event that the programming of the remotecontrol is lost. The displayed code may include the control code and acommand code specific to the device. The command code may correspond toa command to power on, power off, play, rewind, fast forward, volume up,volume down, record, pause, or picture-in-picture the device.

FIG. 4 is one embodiment of a remote control 400 suitable for performingthe method 300 described in FIG. 3. The remote control includes aplurality of keys including a standard telephone-style keypad 402 havingkeys for 0-9, # and *. In addition, the remote control 400 shown hasfour arrow keys: an up arrow key 404, a right arrow key 406, a downarrow key 408, and a left arrow key 410. A select key 424 is providedbetween the four arrow keys 404, 406, 408, 410. One skilled in the artwill recognize that other ways of arranging keys are possible. Oneskilled in the art will also recognize that the addition or subtractionof the number and type of keys is possible.

In the embodiment shown, an LCD screen 412 is also provided on theremote control 400. The LCD screen 412 may display text and graphics tothe user. In addition, the LCD screen 412 may also be a touch sensitivescreen allowing the user to make user inputs via the LCD and issuecommands to the remote control.

In this embodiment, the remote control 400 is capable of selectivelycontrolling up to four different devices. Selecting the devices isachieved through four device “mode” keys, each illuminated with a LEDinside the key, that are provided on the keypad. The keypad includes aTV mode key 414, a satellite receiver mode key 416, a VCR mode key 418,and an AUX mode key 420.

A detailed example of a specific embodiment of the method 300 in FIG. 3is described below. This example uses the embodiment of a remotecontrol, as shown in FIG. 4, which includes multiple stored sets ofcontrol codes for various device types (e.g., one or more control codesets are identified with each satellite receiver, TV, VCR, or auxiliarydevice types).

In this example, the second user input described in method 300 alsoincludes two user inputs: pressing the up arrow key 404 and the downarrow key 408. Depending on which key is pressed, the control codeselected by the selection operation 312 will be different. Each set ofcontrol codes in this example is stored as a table or list of controlcodes wherein each control code is stored as an entry in the table. Thetable defines a sequence of control codes such that receipt of the uparrow key 404 as the second user input selects the next control code inthe table and receipt of the down arrow key selects the immediatelyprevious control code.

In the example, the receiving step 302 receives a first user input ofthe user pressing and holding a mode key for three seconds beforereleasing the key. If the AUX mode key is the first user input, the setof control codes must be further identified with an additional keystrokeby the user. In the example, a “0” keystroke identifies the TV mode setof control codes. A “1” keystroke identifies the VCR mode set or sets ofcontrol codes. A “2” keystroke identifies a tuner or amplifier set ofcontrol codes. A “3” keystroke identifies all sets stored in the remotecontrol to be used. After the 0, 1, 2, or 3 selection is made, anadditional “*” keystroke must be entered.

Next, the user must designate the command to be transmitted along withthe control code when test transmissions are made by the firsttransmission operation 314. In the example, the user must press thepower key 422.

After receiving the power key user input, the remote control waits foran input from the user. Pressing either the up arrow 404 or the downarrow 408 will increment or decrement to the next table entry andtransmit the power code associated with the currently selected tableentry and wait for another user input.

The remote control provides an indication to the user that all codes inthe selected sets of codes have been tried by rapidly flashing all theLEDs of the mode keys eight times. In addition, an indication isprovided to the user for each subsequent receipt of an up arrow key ordown arrow key user input after all codes in the selected set of codeshave been tried.

If the signal transmitted by the remote control is operative, then thedevice will turn off (if the device is on) or turn on (if the device isoff). If upon pressing the up or the down arrow keys 404 or 408, nothinghappens, then the user keeps pressing the same button until the remotecontrol indicates that all codes in the selected set of codes weretried.

If the device does respond to a transmission, the user presses the “#”key on the main keypad 402. In response to the “#” user input, theremote control stores the currently selected control code into memoryand transmits a second power command to the device using the currentlyselected control code to return the device to its original power state.Note that for some devices such as TVs the command code for turn on andturn off are the same code. In this case, the power on command and itsreverse command are the same.

In the example, a timeout period of 20 seconds is provided. If nokeystrokes or other user inputs are detected within that period, timeoutexit operation 306 will occur and the programming mode will timeout. Theremote control may then return to normal operation without changing anystored control codes.

Note also that different manufacturers may provide different controlcodes and command codes for their devices. In this case, the table ofcommand codes may also include the different command codes appropriatefor the device with that control code. In these embodiments, determiningthe command code for a device may also be performed as part of theselecting operation 312.

FIG. 5 illustrates a method 500 in accordance with another embodiment ofthe present invention. The method 500 is directed at displayinginstructions to the user while the remote control is in a programmingmode.

In the method 500, a storing operation 502 is performed that storesinstructions on how to program the remote control that may ultimately beshown to the user. The instructions may be stored on the remote controlor may be stored on a device with which the remote control is provided.In general, the first and second instructions give feedback to the userbased on user inputs provided. Each instruction displayed may ask theuser a question or prompt the user for user inputs. In one embodiment,the instructions may be periodically updated to cover additionalfeatures or provide more information.

A monitoring operation 504 monitors the user inputs received by theremote control. This operation may be performed by the remote controlitself, or may be performed by a device such as a set-top-box ortelevision that monitors transmissions sent by the remote control. Inthese cases, the devices must have the capability to interpret thetransmissions of the remote control and determine the user inputs thatcaused the transmissions. Alternatively, the remote control may bedesigned to work in concert with a companion device like a set-top-box.In this case, the remote control also sends a transmission to thecompanion device that alerts the companion device to the user inputs forevery transmission sent to other devices.

Upon receipt of a user input, the remote control next enters aprogramming mode in receiving operation 506. Embodiments of thereceiving operation 506 include those described above for the receivingoperation 302 with reference to FIG. 3.

Upon entry of the programming mode, a providing first instructionsoperation 508 causes first instructions to be displayed on a displaydevice. The display device may be a television connected to the homeentertainment system or may be the LCD 412 of the remote control. Thefirst instructions may be selected based on the type of deviceidentified in the receiving operation 506 as well as other factors. Forexample, if the AUX mode key is the first user input, then the firstinstructions may be, “Enter ‘0’ to search TV codes; ‘1’ to search VCRcodes; or ‘2’ to search external amplifier or tuner codes. Afterentering your selection, press ‘*’.”

After display of the first instructions, an additional user input isreceived in a second receiving operation 510. In response to receivingthe additional user input, second instructions are displayed on thedisplay device by a providing second instructions operation 512. Theproviding second instructions operation 512 may include an analysisoperation (not shown) that analyzes the user input received by thesecond receiving operation and, based on the results of the analysis,selects specific second instructions from a set of possible secondinstructions. For example, if a user input is received that would causethe programming mode to exit in failure, the second instructions may askthe user “Are you sure?”

After displaying instructions based on the received user inputs, theprocess may be repeated for any additional user inputs that may bereceived. Each additional user input received may cause secondinstructions to be displayed to the user.

This cycle of receiving user inputs and displaying second instructionsmay continue until an exit programming mode operation 514 occurs.Embodiments of various exit programming mode operations were describedabove with reference to FIG. 3. In addition, as part of the exitprogramming mode operation 514 additional second instructions may beprovided to the display device. Such second instructions may includeasking the user if the user is sure he wants to exit or alerting theuser that a timeout will occur absent user action within a certainamount of time.

It will be clear that the present invention is well-adapted to attainthe ends and advantages mentioned as well as those inherent therein.While presently preferred embodiments have been described for purposesof this disclosure, various changes and modifications may be made whichare well within the scope of the present invention. For example, whilein programming mode the selection and first transmission operations maybe done automatically without receiving second user inputs from theuser. Numerous other changes may be made which will readily suggestthemselves to those skilled in the art and which are encompassed in thespirit of the invention disclosed and as defined in the appended claims.

1-20. (canceled)
 21. A method for programming a remote control tocontrol a first device having a device control code comprising:providing first instructions to a display device for viewing by a user,the first instructions related to programming a remote control tocontrol a first device and prompting the user to select at least oneselection element of the remote control; receiving at least one signalindicative of the selection of the at least one selection element of theremote control; and providing second instructions to the display devicefor viewing by the user based on the received at least one signal. 22.The method of claim 21, wherein the display device is a television thatthe remote control is programmed to control and wherein the first deviceis a peripheral device connected to the television.
 23. The method ofclaim 21, wherein at least one of the first instructions and the secondinstructions are provided to the display device by a second devicecontrolled by the remote control and connected to the display device andwherein the providing and receiving operations are performed by thesecond device.
 24. The method of claim 23, wherein the second device isa television receiver device and the display device is a television andfurther comprising: storing at least one of the first instructions andthe second instructions on the television converter device; andmonitoring the at least one signal sent by the remote control for atleast one indication of an attempt by the user to program the remotecontrol to control the first device.
 25. The method of claim 24, whereinthe second instructions include a prompt for the user to confirm theselection of the at least one selection element of the remote controlwhen the selection of the at least one selection element of the remotecontrol would result in failure of the attempt by the user to programthe remote control to control the first device.
 26. The method of claim21, wherein the display device is component of remote control and atleast one of the first instructions and the second instructions arestored on the remote control.
 27. The method of claim 21, wherein thesecond instructions include a query to the user and request the user toanswer by selecting at least one specific selection element of the atleast one selection element of the remote control.
 28. The method ofclaim 21, wherein the first instructions prompt the user to identify adevice type of the first device.
 29. The method of claim 21, wherein thefirst instructions prompt the user to select at least one control codefrom a plurality of control codes for the remote control to transmit tothe first device.
 30. The method of claim 21, wherein the secondinstructions include an alert indicating to the user that a time outwill occur without additional input.
 31. A television receiver,comprising: at least one processing unit that provides firstinstructions to a display device for viewing by a user, the firstinstructions related to programming a remote control to control a firstdevice and prompting the user to select at least one selection elementof the remote control; and at least one communication component,communicably coupled to the at least one processing unit, that the atleast one processing unit utilizes to provide the first instructions tothe display device; wherein the at least one communication componentreceives at least one signal from the remote control that indicatesselection of the at least one selection element and the at least oneprocessing unit provides second instructions to the display device forviewing by the user based on the received at least one signal.
 32. Thetelevision receiver of claim 31, wherein the display device is atelevision that the remote control is programmed to control and whereinthe first device is a peripheral device connected to the television. 33.The television receiver of claim 31, wherein the television receiver isconfigured to be controlled by the remote control.
 34. The televisionreceiver of claim 31, further comprising at least one non-transitorystorage medium, communicably coupled to the at least one processingunit, that stores at least one of the first instructions and the secondinstructions wherein the at least one processing unit monitors the atleast one signal from the remote control for at least one indicationthat the user is attempting to program the remote control to control thefirst device.
 35. The television receiver of claim 34, wherein the atleast one processing unit determines that an updated version of at leastone of the first instructions and the second instructions is availableand the at least one processing unit obtains the updated version andstores the updated version in the at least one non-transitory storagemedium.
 36. The television receiver of claim 31, wherein the displaydevice is component of remote control, the remote control stores atleast one of the first instructions and the second instructions, and theat least one processing unit provides at least one of the firstinstructions and the second instructions to the display device byinstructing the remote control to provide the at least one of the firstinstructions and the second instructions to the display device.
 37. Thetelevision receiver of claim 31, wherein the second instructions includea query to the user and request the user to answer by selecting at leastone specific selection element of the at least one selection element ofthe remote control.
 38. The television receiver of claim 31, wherein theat least one processing unit selects the second instructions from a setof possible second instructions.
 39. The television receiver of claim38, wherein the at least one processing unit receives at least oneadditional signal from the remote control via the at least onecommunication component that includes at least one user response to thesecond instructions and provides at least one additional selection fromthe set of possible second instructions to the display device forviewing by the user based on the received at least one additionalsignal.
 40. The television receiver of claim 39, wherein the at leastone additional selection from the set of possible second instructionsindicates that the remote control has exited a programming mode.